home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / create2a / form1.frm < prev    next >
Text File  |  1999-09-28  |  12KB  |  344 lines

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "Form1"
  4.    ClientHeight    =   5175
  5.    ClientLeft      =   60
  6.    ClientTop       =   345
  7.    ClientWidth     =   5715
  8.    LinkTopic       =   "Form1"
  9.    ScaleHeight     =   5175
  10.    ScaleWidth      =   5715
  11.    StartUpPosition =   2  'CenterScreen
  12.    Begin VB.CommandButton Command3 
  13.       Cancel          =   -1  'True
  14.       Caption         =   "Quit (ESC)"
  15.       Height          =   495
  16.       Left            =   3840
  17.       TabIndex        =   3
  18.       Top             =   4440
  19.       Width           =   1575
  20.    End
  21.    Begin VB.CommandButton Command2 
  22.       Caption         =   "&Unregister"
  23.       Height          =   495
  24.       Left            =   2040
  25.       TabIndex        =   2
  26.       Top             =   4440
  27.       Width           =   1575
  28.    End
  29.    Begin VB.CommandButton Command1 
  30.       Caption         =   "&Register"
  31.       Height          =   495
  32.       Left            =   240
  33.       TabIndex        =   1
  34.       Top             =   4440
  35.       Width           =   1575
  36.    End
  37.    Begin VB.TextBox Text1 
  38.       Height          =   4095
  39.       Left            =   120
  40.       MultiLine       =   -1  'True
  41.       ScrollBars      =   2  'Vertical
  42.       TabIndex        =   0
  43.       Top             =   120
  44.       Width           =   5415
  45.    End
  46. End
  47. Attribute VB_Name = "Form1"
  48. Attribute VB_GlobalNameSpace = False
  49. Attribute VB_Creatable = False
  50. Attribute VB_PredeclaredId = True
  51. Attribute VB_Exposed = False
  52. Option Explicit
  53.  
  54. Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
  55.  
  56. Dim FirstInstallation As String, TimesWorked As Long, LicencedUser As String
  57. Dim Licenc As Long, DemoVersion As Boolean, ReadSeries As String
  58.  
  59. Private Sub AddText(a As String)
  60.  
  61.     Text1.Text = Text1.Text & vbCrLf & a
  62.     
  63. End Sub
  64.  
  65.  
  66. Private Sub InitializeSystem()
  67. On Error GoTo erro
  68.  
  69.     AddText ("Initializing...")
  70.  
  71.     Dim volbuf$, sysname$, serialnum&, sysflags&, componentlength&, res&
  72.     volbuf$ = String$(256, 0)
  73.     sysname$ = String$(256, 0)
  74.     res = GetVolumeInformation("C:\", volbuf$, 255, serialnum, _
  75.             componentlength, sysflags, sysname$, 255)
  76.                  
  77.     AddText ("HD's serial number got: " & serialnum)
  78.     
  79.     'This is the math expression you can apply to get the registering code.
  80.     'Of course, you must build another app that gets the user code and returns the
  81.     'registration code, wich you pass to the user.
  82.     Licenc = Int(2802 * Sqr(serialnum))
  83.     
  84.     AddText ("Licence code is " & Licenc & ", use it when registering the software.")
  85.     
  86.     'LΩ data da 1¬ instalaτπo:
  87.     
  88.     Dim FirstInstallationSaved As String, ReadDate As String, DateOk As String, FirstTime As Boolean
  89.     ReadDate = GetSetting("DemoApp", "Install", "Installation", "xxx")
  90.     
  91.     If Not ReadDate = "xxx" Then
  92.         DateOk = Decrypt(ReadDate, "alex")
  93.         FirstInstallation = DateOk
  94.         AddText ("FirstInstallation read: " & FirstInstallation)
  95.     Else        'Nothing saved, this is the first time...
  96.         'FirstInstallation = Left(Date, 2) & Mid(Date, 4, 2) & Right(Date, 2)
  97.         FirstInstallation = Date
  98.         FirstInstallationSaved = Encrypt(FirstInstallation, "alex")
  99.         SaveSetting "DemoApp", "Install", "Installation", FirstInstallationSaved
  100.         AddText ("No FirstInstallation saved, doing it now.")
  101.         FirstTime = True
  102.     End If
  103.         
  104.     'Reads encrypted serial number:
  105.     ReadSeries = GetSetting("DemoApp", "Install", "Series", "0")
  106.     
  107.     If ReadSeries = "0" Then      'Doesn't exist, creating one
  108.         DemoVersion = True
  109.         Me.Caption = "Demo App - THIS IS A DEMO VERSION!"
  110.         Command2.Enabled = False
  111.         Dim LimitDate As Date, TimesWorked As Long, TimesWorkedRead As String, TimesWorkedSaved As String
  112.         TimesWorkedRead = GetSetting("DemoApp", "Install", "TimesWorked", "0")
  113.         If Not TimesWorkedRead = "0" Then
  114.             TimesWorked = Decrypt(TimesWorkedRead, "alex")
  115.         Else
  116.             TimesWorked = 0
  117.         End If
  118.         
  119.         'Giving the user 1 month to use the demo
  120.         LimitDate = DateAdd("m", 1, FirstInstallation)
  121.         
  122.         If (TimesWorked >= 100 Or LimitDate < Date) And Not FirstTime Then
  123.             Me.Caption = "Demo App - EXPIRED!!!"
  124.             AddText ("")
  125.             AddText ("This Demo version has EXPIRED!!!")
  126.             AddText ("")
  127.             AddText ("Open Registry Editor and delete the key")
  128.             AddText ("HKEY_CURRENT_USER\Software\VB and VBA Program Settings\DemoApp\Install")
  129.             Command1.Enabled = False
  130.             'End    'Disable further use of the app by the user
  131.         Else
  132.             TimesWorked = TimesWorked + 1
  133.             TimesWorkedSaved = Encrypt(CStr(TimesWorked), "alex")
  134.             SaveSetting "DemoApp", "Install", "TimesWorked", TimesWorkedSaved
  135.             AddText ("This is a DEMO version. You can use it for 1 month or 100 times!")
  136.             AddText ("Times worked: " & TimesWorked & "       First installation: " & FirstInstallation)
  137.             
  138.             'Verify the TimesWorked variable:
  139.             If DemoVersion And TimesWorked >= 95 Then
  140.                 If TimesWorked = 100 Then
  141.                     AddText ("")
  142.                     AddText ("WARNING!!   This is the LAST TIME you can run this DEMO version!!!")
  143.                 ElseIf TimesWorked = 99 Then
  144.                     AddText ("")
  145.                     AddText ("WARNING!!   You can run only ONE MORE TIME this app!!")
  146.                 Else
  147.                     AddText ("")
  148.                     AddText ("WARNING!!   You can run this app " & 100 - TimesWorked & " more times.")
  149.                 End If
  150.             End If
  151.             
  152.             'Verify the FirstInstallation variable:
  153.             If Not FirstTime And DemoVersion And DateDiff("d", LimitDate, Date) * (-1) <= 5 Then
  154.                 If DateDiff("d", LimitDate, Date) = 0 Then
  155.                     AddText ("")
  156.                     AddText ("WARNING!!   This is the LAST DAY you can run this demo version!")
  157.                 ElseIf DateDiff("d", LimitDate, Date) = -1 Then
  158.                     AddText ("")
  159.                     AddText ("WARNING!!   You have only ONE MORE DAY to run this demo version!")
  160.                 Else
  161.                     AddText ("")
  162.                     AddText ("WARNING!!   You have " & DateDiff("d", LimitDate, Date) * (-1) & " days to run this demo version!")
  163.                 End If
  164.             End If
  165.         End If
  166.     
  167.     ElseIf Decrypt(ReadSeries, "alex") <> CStr(Licenc) Then
  168.         AddText ("The licence code for this app is wrong.   Please contact the support!")
  169.         'End       'Someone have tried to alter the licence, or copy the entire Windows registry
  170.                     'from a registered machine to another one...
  171.     End If
  172.     
  173.     If DemoVersion = False Then
  174.         Dim e As String
  175.         e = GetSetting("DemoApp", "Install", "LicencedUser")
  176.         Command1.Enabled = False
  177.         LicencedUser = Decrypt(e, "alex")
  178.         Me.Caption = "Demo App - REGISTERED VERSION to " & LicencedUser
  179.         AddText ("Registered version to " & LicencedUser)
  180.         
  181.         'you can continue to count the times the app has worked:
  182.         TimesWorkedRead = GetSetting("DemoApp", "Install", "TimesWorked", "0")
  183.         TimesWorked = Decrypt(TimesWorkedRead, "alex")
  184.         TimesWorked = TimesWorked + 1
  185.         TimesWorkedSaved = Encrypt(CStr(TimesWorked), "alex")
  186.         SaveSetting "DemoApp", "Install", "TimesWorked", TimesWorkedSaved
  187.         AddText ("Worked " & TimesWorked & " times.")
  188.     End If
  189.         
  190.         
  191.         
  192. saφda:
  193.     Exit Sub
  194.     
  195. erro:
  196.     MsgBox "There was an error:" & vbLf & vbLf & Err.Number & " - " & Err.Description, vbCritical
  197.     Resume saφda
  198.  
  199. En